BOSS is a plugin load order optimiser for TES IV: Oblivion, TES V: Skyrim, Fallout 3 and Fallout: New Vegas. It is designed to assist mod users in avoiding detrimental conflicts, by automatically calculating a load order that satisfies all plugin dependencies and maximises each plugin's impact on the user's game.
BOSS also provides some load order error checking, including checks for requirements, incompatibilities and cyclic dependencies. In addition, it provides a large number of plugin-specific usage notes, bug wawrnings and Bash Tag suggestions.
Although BOSS is able to calculate the correct load order positions for the vast majority of mods without any user input, some plugins are designed to load at certain positions in a load order, and BOSS may be unable to determine this from the plugins themselves. As such, BOSS provides a mechanism for supplying additional plugin metadata so that it may sort them correctly.
BOSS is intended to make using mods easier, and mod users should still possess a working knowledge of mod load ordering. See Introduction To Load Orders for an overview.
Note: BOSS version 3 is an almost complete redesign and rewrite of v2. As such, it generally produces different load orders compared to v2. Although much of the v2 masterlist data has been converted for v3, some load order metadata must be rebuilt from scratch, and so some plugins that were sorted correctly by v2 may be sorted incorrectly by v3 until their metadata has been recorded. Users can aid this process by submitting any mistakes they spot to the BOSS team, along with their corrections.
BOSS version 3 is incompatible with earlier versions, which should be removed. Any existing user rules must be manually recreated in BOSS's user interface.
BOSS can be installed either using its automated installer or manually. To install BOSS manually:
If BOSS was installed using the installer, then use the uninstaller linked to in the Start Menu to uninstall BOSS. If BOSS was installed manually:
BOSSfolder in your local application data folder, which can be accessed by entering
%LOCALAPPDATA% into Windows' File Explorer.
When BOSS is run, it will attempt to detect which of the supported games are installed, and set itself to run for the first game detected, unless a default game has been set, in which case it will set itself to run for that game. Once a game has been set, the main window will be displayed.
Clicking the Edit Metadata
button will open BOSS's metadata editor, where you can make changes to the metadata BOSS uses to sort plugins, the messages that get displayed for plugins, and any Bash Tag suggestions BOSS makes.
Clicking the Sort Plugins
button will begin the plugin sorting process. This will sort your plugins, allow you to make any changes to the load order it produces, then display a report that details the results of BOSS's activity.
Clicking the View Last Report
button will display the report generated the last time BOSS sorted your plugins.
The File
menu provides menu items for sorting plugins, viewing the last report BOSS generated and quitting BOSS, while the Edit
menu provides menu items for accessing BOSS's metadata editor and the settings window.
The Game
menu allows you to change which game BOSS is running for without having to close and re-open it. Games that BOSS cannot find are greyed out, and the the one BOSS is running for is marked with a dot to its left. To change the active game, simply select another game in the list.
The Help
menu provides a link to this readme and an about page that contains the version of BOSS being run, some legal information and a link to the code repository.
Clicking the Sort Plugins
button in the main window will begin the sorting process, which consists of the following steps:
OKbutton is pressed, the final load order will be applied. Otherwise, no load order changes will be made.
Sorting around 90 plugins generally takes under 30 seconds, depending on the sizes of the plugins that are installed. For very large plugins, such as the game's main master file, BOSS may appear to stop responding while the plugin is read: this is not an issue.
BOSS's results report can be displayed either in BOSS's own report viewer, or in your default web browser, according to the value of the relevant setting.
The report is comprised of three main sections:
Summarytab gives information on the versions of BOSS and the masterlist used, whether masterlist updating is enabled, and breaks down the numbers of each message type in the Summary and Details tabs. It also notifies you if there have been no changes in the
Detailstab since you last ran BOSS for the same game. Finally, the
Summarytab is also where any global messages supplied in the masterlist and any errors encountered during sorting are displayed.
Detailstab lists the plugins BOSS sorted in their new load order, along with any messages BOSS has provided for them. BOSS will also display plugin version according to what it found in each plugin's description field.
Graphtab displays a graph of all the interactions between the plugins in your load order. It's not very useful to the average user, but may contain information that would aid in debugging any issues encountered, and is also provided as an item of interest.
In addition, there are a few filters that can be used to selectively hide items in the Details
tab. These filters are:
Do not clean..
BOSS will display the version numbers of any plugins that provide them in their description fields. If a plugin supplies no version number, it cannot be displayed. The version numbers may not reflect the actual version of the mod installed - this could either be due to the mod author forgetting to update the description, or due to a mistake in BOSS's detection. As version numbers are supplied by mod authors in a wide range of formats and BOSS has to detect as many as possible, it occasionally identifies parts of some descriptions as version numbers incorrectly. When in doubt, check the version number given in a mod's readme.
BOSS's mod messages are one of the most important features BOSS provides, acting as a means of providing users with information that they might otherwise not obtain. It is important for a stable, healthy game that you act on any messages that require action.
If you think a message suggests an unnecessary action, report it to an official BOSS thread. If you encounter a message that is non-conditional, ie. it suggests an action but is still displayed on subsequent runs of BOSS after the action has been carried out, or that it suggests an action that is not necessary, also report it to an official BOSS thread, so that it can be made conditional.
BOSS's sorting algorithm uses the contents of plugins to work out where they should load relative to one another. However, this is sometimes not enough for it to produce a correct load order. In such cases, additional metadata can be supplied so that the plugins get sorted correctly.
This metadata is supplied to BOSS by two sources: one is the masterlist, which is maintained by the BOSS team, and the other is the userlist, which you can edit as you desire.
The metadata editor allows you to manage the metadata stored in your userlist. When opened, it lists all the plugins you have installed, and any that are missing but have existing user-added metadata, in alphabetical order. Clicking on a plugin then opens its metadata for editing, and displays any existing metadata in the fields to the right of the plugin list. These fields are explained in the table below.
The Add …
, Edit …
and Remove …
buttons are used to edit the contents of the list currently visible. The Edit …
and Remove …
buttons are greyed out if no row is selected or if the selected row is not user-added metadata, but comes from the masterlist or the plugin itself. Metadata that comes from the masterlist or the plugin itself cannot be edited or removed, only added to. This is to prevent users from accidently overriding important metadata.
The Copy Metadata As Text
copies the selected plugin's current metadata, as it appears in the userlist, to the clipboard. This makes it easier to share your metadata changes with the BOSS team, as they can then paste this text directly into the masterlist, and also avoids any typos being introduced. If posting the text in an online forum that supports BBCode (as most forums do), be sure to wrap it in [code] tags, eg. [code]copied text[/code], so that the spaces are not removed by the forum software.
The Save Changes
button will save any user-added metadata to your userlist, including any changes made, then exit the metadata editor. The Cancel
button will exit the editor without saving any changes.
| Field | Description |
|---|---|
| Enable User Changes | If this is checked, BOSS will use the metadata you supplied when sorting the current plugin. Otherwise, your metadata will be ignored. |
| Priority | This is a very rough control for determining how far up or down the load order a plugin should go. Plugins with equal priority will be compared as normal by the sorting algorithm, but plugins with a larger priority value will load later in the load order than plugins with a smaller priority value, unless the former depends on the latter or the latter is explicity told to load after the former. Plugins have a default priority of 0.
|
| Requirements | This is a list of files that are required by the current plugin for it to function correctly. BOSS will refuse to sort your load order if any of the listed files are missing, and will instead display an error message detailing the problem.
Any file, not just plugins, can be listed here, and each file has three sub-fields:
Note that listing a plugin's masters as requirements is pointless, as BOSS already checks them. |
| Incompatibilities | This is a list of files that are incompatible with the plugin. BOSS will refuse to sort your load order if any of the listed files are found, and will instead display an error message detailing the problem.
Any file, not just plugins, can be listed here, and each file has the same three sub-fields as for the requirements field. |
| Load After | This is a list of plugins which, if present, the current plugin must load after, but which are not required. This field can be used for resolving specific compatibility issues. |
| Messages | A list of messages that are to be displayed for the plugin in BOSS's report. These have no bearing on a plugin's position in the load order, but the messages BOSS provides for plugins are one of its most important features.
Each message has four sub-fields:
If a message's condition determines that the message should be displayed, but the language is specified and doesn't match the language BOSS is running in, then the message will not be displayed. However, if the condition determines the message should not be displayed and the language matches the language BOSS is running in, the message will still not be displayed. |
| Bash Tags | A list of Bash Tags. These are used by the Wrye *ash utilities when generating a Bashed Patch. BOSS's metadata includes Bash Tag addition and removal suggestions, and any Bash Tags that came with the plugin are also displayed.
As BOSS can suggest Bash Tags be added or removed, it is possible for the same Tag to appear twice, being suggested for addition and removal. In such cases, removal overrides addition. Each Bash Tag has three sub-fields:
If a plugin's masters are missing, an error message will be displayed for it. Filter patches are special mods designed for use with a Bashed Patch that do not require all their masters to be present, and so any plugin with the |
BOSS's settings window may be accessed by clicking Edit→Settings
in the main window's menu bar. BOSS's settings are detailed in the table below.
| Setting | Description |
|---|---|
| Default Game | If set to something other than Autodetect, this overrides game autodetection. If the game specified is not detected, BOSS falls back to autodetection. |
| Language | Controls the language BOSS uses in its interfaces. Debug messages are always displayed in English, and any plugin messages that do not have translations in the selected language will be displayed in English instead. |
| Debug Verbosity | Controls the verbosity of the debug output, which is written to BOSSDebugLog.txt. |
| Update masterlist before sorting | If checked, BOSS will update its masterlist, should an update be available, before sorting mods. |
| View reports externally in default browser. | If checked, BOSS will display its report using your default web browser instead of opening its own window. |
| Generate and display plugin graph images. | If checked, BOSS will generate an SVG image of the plugin interaction graph and display it in its report. Image generation can take a long time, so this is disabled by default. |
The games list allows the customisation of which games BOSS offers support for, trivialising support for multiple copies of a game and Total Conversions. The games listed here will be displayed in the main window's Game
menu when BOSS is next run. The Add Game
, Edit Game
and Remove Game
buttons are used to edit the list. Each game has several columns, which are explained below.
| Column | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Name | The name of the game, or another identifying string, that is displayed in menus and the main window's title bar. | ||||||||||
| Base Game Type | Every game BOSS runs for must use the plugin file format and load order system of one of the following games:
|
Note that for Skyrim, multiple copies or Total Conversions will all edit the same plugins.txt file, and so they lack the level of independence that is achievable for other games.
If BOSS encounters a problem at any point, it should provide an error message, either in a dialog (as is generally the case) or in its report (as for errors encountered during the sorting process). If BOSS unexpectedly crashes, or you experience a problem for which no error message is given, please report the crash or problem to an official BOSS thread (see Contributing To BOSS), so that it can be fixed.
If the information below does not help you to solve any problems you are experiencing, please seek further support in one of the official BOSS threads.
There are a few general reasons why BOSS may fail to function correctly. Check if any of the symptoms listed below fit your issue.
lockyour load order.
There is a problem sending the command to the program.
User contribution of additions and corrections to BOSS's masterlists are vital to the upkeep of BOSS. Please let us know what you know!
General discussion and the submission of questions, suggestions and metadata takes place in BOSS's official threads for Oblivion, Nehrim, Skyrim, Fallout 3 and Fallout: New Vegas.
Notifications of dirty plugins are very welcome, but for such information to be useful we require:
CRC checksum for datais the one required.
BOSS supports translation into other languages, with the following limitations:
Translations can be submitted for inclusion into BOSS as an issue in BOSS's Google Code bug tracker, by posting it in one of BOSS's official threads (see Contributing To BOSS), or by contacting one of the BOSS team directly (see Project Members). Submitting your translation to BOSS's bug tracker requires a Google account, but is the preferred method.
To translate BOSS's installer:
English Strings. Copy and paste this section into a new text file, and translate the quoted strings, replacing the English text. For the lines beginning
VIAddVersionKey, only translate the second quoted string.
File->Preferences, then in the
Editortab ensure that the checkbox for the
Automatically compile .mo file on savesetting is checked. Click
OKto close the preferences window.
File->New catalogue from POT file...and choose the template file you downloaded. In the
Catalog propertiesdialog, just click
OKwithout changing anything.
Catalogue->Update from POT file...and choose the template file you downloaded. Click
OKin the
Update summarydialog.
Some languages may use different words or phrases for different contexts where only one word or phrase may be used for all contexts in English. While no contextual information is supplied to translators by default, it can be added on request. To request the addition of contextual information to a text string, contact WrinklyNinja, quoting the structure that contains the string for which you are requesting contextual information.
Some strings to be translated may contain special characters. Different types of special character that may be encountered are:
\. Backslashes must be escaped using another backslash, so if you wanted to display a single backslash \, you would put \\ in your translated string.
\n. Do not change the position of these characters relative to the surrounding text, they are responsible for creating new lines.
&. If a string contains a word that begins with or includes an ampersand, the string is for a menu item and the ampersand is a symbol placed before a specific letter and used to show which keyboard key can be used to select that menu item. The ampersand can be moved to be placed before a more appropriate letter in the translated text.
%1%.
%s or %3.0f.
messages.po in a location of your choosing. This will also create a messages.mo file in the same location.
As BOSS is very much a community project, credit is due to a very large number of sources and people outside of the BOSS Development Team. Some people have gone out of their way and provided continuing, expert and detailed help - thank you very much!
In addition to the above data-related support, the following are credited with application-related support:
BOSS is written in C/C++ and makes use of Subversion and the Alphanum, Boost, libespm, libloadorder, PugiXML, svgweb, wxWidgets and yaml-cpp libraries. BOSS's reports are written in XHTML/CSS/Javascript and make use of Polyfill.js to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found here.
Since June 2009, BOSS has been a collaborative project on Google Code using the Subversion version control system. In alphabetical order, the project members are:
| Member | Admin | Programmer | Masterlists Member Contributes To | |||||
|---|---|---|---|---|---|---|---|---|
| Oblivion | Nehrim | Fallout 3 | Fallout: New Vegas | Skyrim | ||||
| AliTheLord | ||||||||
| Arkangel | (Krhanal on Nexus) | |||||||
| Arthmoor | ||||||||
| Calen Ellefson | (Bethesda Softworks only) | |||||||
| Gabba | (Bethesda Softworks only) | |||||||
| iyumichan | ||||||||
| Leandro Conde | (Bethesda Softworks only) | |||||||
| Loucifer | (Linmor on Nexus) | |||||||
| Malonn | ||||||||
| PacificMorrowind | ||||||||
| Peste | (ztrathego on Nexus) | |||||||
| Psymon | (Bethesda Softworks only) | |||||||
| Random007 | ||||||||
| Red Eye | (redeye85 on Nexus) | |||||||
| RiddlingLynx | (Nexus only) | |||||||
| Sharlikran | ||||||||
| SilentSpike | (SilentSpike69 on Nexus) | |||||||
| Skyline | (skyline99 on Nexus) | |||||||
| Space Oden69 | (SpaceOden on Nexus) | |||||||
| Televator | ||||||||
| Tokc.D.K. | (Bethesda Softworks only) | |||||||
| Torrello | ||||||||
| Vacuity | ||||||||
| Valda | ||||||||
| WrinklyNinja | ||||||||
| ZiggyX200 | ||||||||
Members with greyed-out rows are currently inactive, with no contributions in the three months before release of this version of BOSS. Unless otherwise noted, project members can be contacted on the Bethesda Softworks Forums or on The Nexus Forums via the private messaging system.
BOSS is distributed under the GNU General Public License v3.0, aside from the documentation, which is distributed under the GNU Free Documentation License v1.3. The full texts of the licenses are included with BOSS in the accompanying GNU GPL v3.txt and GNU FDL v1.3.txt files.
While the GPL license allows anyone to make derivative works of BOSS, the BOSS Development Team encourages those thinking of doing so to first discuss their reasoning for such an endevour with the Team. It may be that what the derivative work would do differently from BOSS itself is already planned for a future version of BOSS or would be happily integrated into BOSS by the Team, thus avoiding any extra effort by others.
The BOSS Team also appeals to the community to avoid the distribution and development of alternative masterlists, as this would only hamper the community effort to create one universally-optimised load order for all plugins available for download. Any issues with a masterlist are best brought to the attention of the BOSS Team so that we may remedy them ourselves.
GNU Free Documentation License Version 1.3 Notice:
Copyright (C) 2012-2013 WrinklyNinja
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the file named "GNU FDL v1.3.txt".
This appendix provides a general overview of load ordering in the games BOSS supports for those who are unfamiliar with the concept. For simplicity, the game
will be used when the text refers to any of the games that BOSS supports.
Mod plugins for the game are files that end in .esp or .esm. These files are created by the game's official editing tools, or by third party modders' tools. They contain various data entries, which can either be brand new additions or changes to the entries added by another plugin, including the game's main master file (Oblivion.esm, Nehrim.esm, Skyrim.esm, Fallout3.esm or FalloutNV.esm depending on the game). These entries cover almost all aspects of what is in the game, eg. NPCs, items, races, interiors, worlds, quests, etc.
When the game is run, it loads each of the plugins you have installed one by one. The order in which it loads them is, unsurprisingly, what is referred to as the load order. The load order is important for two reasons:
A plugin which changes the entries added by other plugins is dependent on those other plugins, and the game requires all of the latter plugins to be loaded before the former. If they aren't, the game will crash on launch.
The game can only apply one version of any one entry (this is known as the rule of one
). Therefore, when more than one plugin changes the same entry, the load order is used to decide which plugin's changes are applied. Put simply, the last loaded plugin's changes are applied. The one exception to the rule of one
is that the contents of cells (the physical space in which your character moves) can be changed by any number of plugins, so different plugins can add objects to cells, move them around or remove them and all will see their changes applied by the game.
By changing the load order, you can change which plugins override and which are overridden, and so reduce detrimental conflicts. You cannot actually reduce how much is overridden through load order alone, but it is often the case that some overrides are acceptable while others cause problems in game. Setting a good load order is the process by which you seek to maximise the former instead of the latter.
Further compatibility between mods is then possible through the use of patches, which are made to address incompatibilities between specific mods, and through the use of Wrye Bash, which can create a Bashed Patch
that allows you to select between types of changes for different mods. For example, two mods change a piece of armour, but one changes how it looks and the other changes its effectiveness: through load order alone you could only ever get one change, but using Wrye Bash you can get both, because they change different things in the same armour entry.
There are a few hardcoded rules that trump load order in many cases:
Skyrim.esm always loads before all other plugins.
Update.esm is present, it is always loaded. If it has no load order position set, it loads after all other master plugins. That might sound a bit odd, but thanks to Skyrim's load order mechanism, it is possible for it to have no set load order position, even though it is always loaded.
A plugin's position in the load order is often displayed by mod managers as a hexadecimal number, from 00 to FE (0 to 255 in decimal). The plugin with position 00 loads first, and the plugin with position FE is loaded last. Hexadecimal numbers are used to display the load order positions of plugins because these numbers form the first two digits of the code that the game uses to reference the entries that the plugin adds, so knowing the numbers allows modders and mod users to determine from which plugin an entry is from.
That's all that you as a mod user need to know about load orders. If you want to find out more about the actual mechanism by which the game decides the load order, read on.
Oblivion, Fallout 3 and Fallout: New Vegas all share the same mechanism for deciding load order. Skyrim, since the 1.4.26 patch, uses a different mechanism.
Load order for Oblivion, Fallout 3 and Fallout: New Vegas is decided by the modification date timestamps of the mod plugins. The active plugin with the earliest date loads first, with plugins being listed in descending date order (earliest to latest). It's a bad idea for a plugin that isn't the game's main master file to load first.
Skyrim's mechanism uses the order that plugins are listed within its plugins.txt file as its load order (from top to bottom). This file is the one in which the list of active plugins is stored, so only active plugins can be strictly said to have a load order.
Dirty edits are often a side-effect of mod creation, and are often due to bugs in the utilities Bethesda has provided to create mods, rather than bad practice by mod authors. Dirty edits can cause a wide range of issues, including incorrect game settings, missing content, broken quests and crashing to desktop. The more dirty edits there are in a mod, and the more mods with dirty edits you use, the more likely you are to experience issues.
Thankfully there is a way to remove dirty edits from mods relatively easily, a process known as mod cleaning, using TES4Edit (for Oblivion), FO3Edit (for Fallout 3), FNVEdit (for Fallout: New Vegas) or TES5Edit (for Skyrim). A detailed set of instructions and information on mod cleaning can be found on the CS Wiki's TES4Edit Cleaning Guide (the page also largely applies to Fallout 3, Fallout: New Vegas and Skyrim). Wrye *ash can also scan plugins for dirty edits and return their ITM and UDR counts, though at the time of writing it cannot clean plugins itself.
The problem of dirty edits is largely a problem of ignorance on the part of mod authors and users alike of the problems dirty mods can cause. As such, there are community efforts to raise awareness of dirty edits and cleaning. BOSS plays a key role in these efforts, as it holds the complete list of all known dirty mods, and it uses this information to provide notification messages to users for any dirty mods they have installed. There are three key pieces of information that are used to accurately describe and identify an unclean mod. They are:
Display File CRCsoption enabled.
However, not all unclean mods have all or any of these pieces of information. For unclean mods whose ITM and UDR counts have not been reported, BOSS cannot give them. For unclean mods whose CRCs have not been reported, BOSS cannot give precise notification and so prints a message whether or not the user has cleaned their mod.
BOSS and the modding communities rely on user contribution of this information to progress. For information on how to contribute, see the Contributing To BOSS section below. If you find that a mod is dirty, you should also report this to the mod's author so that they can fix it.
Note: TES4Edit et al. will include a variety of junk records in the ITM count for a plugin, such as new empty cells that are automatically generated by the Construction Set and are almost impossible to remove. These junk records are non-harmful, and BOSS will inform users when a mod contains these to avoid confusion. This is also the source of any discrepancies between the counts produced by TES4Edit and those produced by Wrye *ash. The latter's counts are more technically accurate, but both are acceptable for use.
There is also another type of unnecessary edit, known as a wild edit, that can also cause problems. These edits are neither Identical To Master edits nor deleted records, so cannot be automatically cleaned. Cleaning must be manually done in TES4Edit/FO3Edit/FNVEdit. BOSS can still check for plugins with these edits if the CRCs of the plugins with wild edits are known, and it can provide notification of these edits and some information on fixing them if they are reported in an official BOSS thread.
If you are running Windows Vista or a later version of Windows, BOSS (and other modding programs) may be prevented from working correctly by the UAC security feature. There are four common workarounds to this problem:
Program Files(or
Program Files (x86)if on 64-bit Windows). UAC prevents unauthorised edits to these folders, so by installing the game outside of them, you remove it from UAC's reach, allowing you to use mods more easily.
Full Controlpermissions over your game install folder. This will allow you to make any edits you desire while keeping UAC active and on guard for any edits made by programs you do not run, and also means that you do not need to reinstall your game to a new location.
Run as administrator.
For those that wish to take the third option and give themselves Full Control
permissions, here is a guide:
Properties.
Properties, select the
Securitytab, and click the
Edit...button. A UAC prompt may appear, simply allow yourself to continue.
Group or user namesbox, select the
Usersoption.
Full Controlin the
Allowcolumn. Press OK to exit. If a UAC prompt appears, allow the change.
Propertieswindow, select OK to exit. You should now have Full Control permissions over your chosen folder.
Only the history of version 3 is given, as changes prior to version 3 are irrelevant due to the complete redesign that occurred. The masterlists are updated far too frequently for their changes to be concisely recorded here, but a full history of changes to them may be viewed by browsing the Google Code repository.